using System;
using System.Collections.Generic;

namespace AGame.TabOrm
{
    public class RepositoryReader<TKey> : IRepository<RepositoryReader<TKey>.RepositoryEntity, TKey>
    {
        private static Func<RepositoryEntity> CreateRepositoryEntity;

        public class RepositoryEntity
        {
            static RepositoryEntity()
            {
                CreateRepositoryEntity = () => new RepositoryEntity();
            }
            
            private RepositoryEntity(){}

            public T GetValue<T>(string fieldName)
            {
                return default;
            }
        }
        
        
        private object _repository;
        
        private RepositoryReader() { }
        
        
        
        public void RefreshTab()
        {
            throw new System.NotImplementedException();
        }

        public bool Add(RepositoryEntity obj)
        {
            throw new System.NotImplementedException();
        }

        public bool Set(RepositoryEntity obj, bool needInit = false)
        {
            throw new System.NotImplementedException();
        }

        public bool Remove(RepositoryEntity obj)
        {
            throw new System.NotImplementedException();
        }

        public bool RemoveAt(int index)
        {
            throw new System.NotImplementedException();
        }

        public bool ContainsKey(params TKey[] id)
        {
            throw new System.NotImplementedException();
        }

        public List<RepositoryEntity> GetDataList(params TKey[] id)
        {
            throw new System.NotImplementedException();
        }

        public RepositoryEntity GetDataById(params TKey[] id)
        {
            throw new System.NotImplementedException();
        }

        public bool TryGetDataById(out RepositoryEntity res, params TKey[] id)
        {
            throw new System.NotImplementedException();
        }

        public RepositoryEntity GetDataByIndex(int index)
        {
            throw new System.NotImplementedException();
        }

        public bool SetDataId(RepositoryEntity obj, params TKey[] id)
        {
            throw new System.NotImplementedException();
        }

        public void Destroy()
        {
            throw new System.NotImplementedException();
        }
        
        
#if UNITY_EDITOR
        public void WriteTab()
        {
            throw new System.NotImplementedException();
        }
#endif
    }
}